package com.xtiim.battery.discharge.modules.htm.service;

import com.xtiim.battery.discharge.modules.htm.model.HostInfo;
import com.xtiim.battery.discharge.modules.htm.param.HostInfoCreatParam;
import com.xtiim.battery.discharge.modules.htm.param.HostInfoQueryParam;
import com.xtiim.battery.discharge.modules.htm.param.HostInfoUpdateParam;

import java.util.List;

/**
 * HostInfoService
 *
 */
public interface HostInfoService {

    /**
     * create host info
     * @param createParam
     * @return
     */
    Boolean create(HostInfoCreatParam createParam);

    /**
     * select host info by name and number
     * @param name
     * @param number
     * @return
     */
    HostInfo selectHostInfo(String name, String number);

    /**
     * update host info
     * @param updateParam
     * @return
     */
    Boolean update(HostInfoUpdateParam updateParam);

    /**
     * get host info
     * @param queryParam
     * @return
     * @param <T>
     */
    <T> T getHostInfo(HostInfoQueryParam queryParam);

    /**
     * delete host info
     * @param id
     * @return
     */
    Boolean deleteHostInfo(Long id);

    /**
     * get all opened host info
     * @return
     */
    List<HostInfo> getAllOpenedHostInfos();
}
